Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Граматика арифметичних виразів

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Дискретна математика

Частина тексту файла

Умова задачі: Побудувати грамматику арифметичних виразів, що можуть мати лише ідентифікатори А В С та знаки операції додавання. Документація: Граматика – це сукупність правил, що формують слова та вирази мови Граматика має настуну структуру G = < ∑, N, P, S> Де ∑ - алфавіт, N – множина нетермінальних символів, P – правила виводу, S – аксіома. Наприклад: При запуску наша програма виводить нам на екран / Ввівши текст, вона виводить результат / Нехай ми продовжимо роботу і введем новий текст, після чого вона виводить нам результат / Наша програма завершена. Код програми: Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab_5 { class Program { private static string temp; private static string temp1; static void Main(string[] args) { do { Grammar grammar = new Grammar(); int count; bool main_pr = true; Console.WriteLine("Vvedid text:"); string str; str = Console.ReadLine(); count = str.Count(); if (grammar.First_Last_Character(str, 0)) { } else main_pr = false; for (int i = 0; i < count - 1; i++) { if (grammar.Main_Character(str, i, i + 1)) { } else main_pr = false; } if (grammar.First_Last_Character(str, count - 1)) { } else main_pr = false; if (main_pr) Console.WriteLine("Vidpovidaje hramatyci aryfmetythnych vyraziv"); else Console.WriteLine("Ne vidpovidahe hramatyci aryfmetythnych vyraziv"); Console.WriteLine("Povtorennja vvedennja ? (vvedit tak dlja povtorennja)"); temp = Console.ReadLine(); temp1 = "tak"; } while (String.Compare(temp, temp1) == 0); } } } Gramar.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Lab_5 { class Grammar { public bool First_Last_Character(string obj, int j) { if (obj[j] != 'A' && obj[j] != 'B' && obj[j] != 'C') { return false; } else return true; } public bool Main_Character(string obj, int rob, int next) { if (obj[rob] == 'A' || obj[rob] == 'B' || obj[rob] == 'C') if (obj[next] != '+') return false; else { }; if (obj[rob] == '+' && obj[next] != 'A' && obj[next] != 'B' && obj[next] != 'C') return false; else { }; return true; } } }
Антиботан аватар за замовчуванням

22.09.2013 12:09

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини